home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / usenet / volume11 / larn / patch3 < prev    next >
Encoding:
Internet Message Format  |  1991-02-14  |  13.0 KB

  1. Path: uunet!zephyr.ens.tek.com!tekred!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v12i034:  larn - dungeon type adventure game, Patch3
  5. Message-ID: <7001@tekred.CNA.TEK.COM>
  6. Date: 11 Feb 91 18:36:18 GMT
  7. Sender: news@tekred.CNA.TEK.COM
  8. Lines: 553
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: routley@tle.ENET.DEC.COM (Kevin Routley)
  12. Posting-number: Volume 12, Issue 34
  13. Archive-name: larn/Patch3
  14. Patch-To: larn: Volume 11, Issue 84-95
  15. Environment: Unix, VMS, MS-DOS, termcap
  16.  
  17.     [Adds support for OS/2.    -br]
  18.  
  19. #! /bin/sh
  20. # This is a shell archive.  Remove anything before this line, then unpack
  21. # it by saving it into a file and typing "sh file".  To overwrite existing
  22. # files, type "sh file -c".  You can also feed this as standard input via
  23. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  24. # will see the following message at the end:
  25. #        "End of shell archive."
  26. # Contents:  patches03
  27. # Wrapped by billr@saab on Mon Feb 11 10:30:15 1991
  28. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  29. if test -f 'patches03' -a "${1}" != "-c" ; then 
  30.   echo shar: Will not clobber existing file \"'patches03'\"
  31. else
  32. echo shar: Extracting \"'patches03'\" \(11296 characters\)
  33. sed "s/^X//" >'patches03' <<'END_OF_FILE'
  34. X*** patchlevel_orig.h    Sun Feb 10 19:31:54 1991
  35. X--- patchlevel.h    Sun Feb 10 19:31:50 1991
  36. X***************
  37. X*** 1 ****
  38. X! #define PATCHLEVEL 2
  39. X--- 1 ----
  40. X! #define PATCHLEVEL 3
  41. X*** PATCHLOG_orig    Sun Feb 10 19:32:01 1991
  42. X--- PATCHLOG    Sun Feb 10 19:31:57 1991
  43. X***************
  44. X*** 1,3 ****
  45. X--- 1,10 ----
  46. X+ Patch3
  47. X+ ======
  48. X+ 
  49. X+ Courtesy of Scott Robins (scottr@scottr.dec.com).  Modifications and new
  50. X+ files that allow Larn 12.2 to be compiled for OS/2 using Microsoft C.  Some
  51. X+ of the changes may be applicable to MS-DOS Microsoft C as well.
  52. X+ 
  53. X  Patch2
  54. X  ======
  55. X  
  56. X*** header_orig.h    Sun Feb 10 19:22:54 1991
  57. X--- header.h    Sun Feb 10 19:22:47 1991
  58. X***************
  59. X*** 508,515 ****
  60. X--- 508,520 ----
  61. X  #  define KNOWHERE  0x2
  62. X  #  define KNOWALL   (HAVESEEN | KNOWHERE)
  63. X  # ifdef DGK_MSDOS
  64. X+ #ifdef OS2LARN
  65. X+ #define PATHLEN 256
  66. X+ #  define DIRLEN    256
  67. X+ #else
  68. X  #  define PATHLEN   80
  69. X  #  define DIRLEN    64
  70. X+ #endif
  71. X     extern   char    larndir[];
  72. X     extern int       raw_io, DECRainbow, keypad, ramlevels, cursorset;
  73. X     extern unsigned char cursorstart, cursorend;
  74. X*** main_orig.c    Sun Feb 10 19:23:22 1991
  75. X--- main.c    Sun Feb 10 19:23:08 1991
  76. X***************
  77. X*** 434,445 ****
  78. X      else
  79. X          viewflag=0;
  80. X  
  81. X!     if (hit3flag) flushall();
  82. X          hitflag=hit3flag=0; nomove=1;
  83. X          bot_linex();    /* update bottom line */
  84. X          while (nomove)
  85. X              {
  86. X!             if (hit3flag) flushall();
  87. X              nomove=0; parse();
  88. X              }   /*  get commands and make moves */
  89. X          regen();            /*  regenerate hp and spells            */
  90. X--- 434,455 ----
  91. X      else
  92. X          viewflag=0;
  93. X  
  94. X!     if (hit3flag) 
  95. X! #ifdef OS2LARN
  96. X!         flushallkbd();
  97. X! #else
  98. X!         flushall();
  99. X! #endif
  100. X          hitflag=hit3flag=0; nomove=1;
  101. X          bot_linex();    /* update bottom line */
  102. X          while (nomove)
  103. X              {
  104. X!             if (hit3flag) 
  105. X! #ifdef OS2LARN
  106. X!         flushallkbd();
  107. X! #else
  108. X!         flushall();
  109. X! #endif
  110. X              nomove=0; parse();
  111. X              }   /*  get commands and make moves */
  112. X          regen();            /*  regenerate hp and spells            */
  113. X*** /dev/null    Sun Feb 10 19:26:01 1991
  114. X--- makefile.os2    Sun Feb 10 19:23:25 1991
  115. X***************
  116. X*** 0 ****
  117. X--- 1,128 ----
  118. X+ #
  119. X+ # This is a makefile for OS/2 LARN V12.2
  120. X+ # 
  121. X+ # This is written for MSC V6.00; it assumes NMAKE.
  122. X+ #
  123. X+ # This could probably build a DOS larn also, if the definition 
  124. X+ # of OS2LARN was removed from the cc command.
  125. X+ #
  126. X+ 
  127. X+ OBJ = obj\ 
  128. X+ CDEFS = -DOS2LARN -DDGK -DMSDOS -DSYSV -DDGK_MSDOS -DNOVARARGS 
  129. X+ cc    = cl $(CDEFS) -nologo -Zi -c -AL -Fo$(OBJ) 
  130. X+ 
  131. X+ OBJS =    $(OBJ)action.obj    $(OBJ)bill.obj        \
  132. X+     $(OBJ)config.obj    $(OBJ)create.obj    \
  133. X+     $(OBJ)data.obj        $(OBJ)diag.obj        \
  134. X+     $(OBJ)display.obj    $(OBJ)fgetlr.obj    \
  135. X+     $(OBJ)fortune.obj    $(OBJ)global.obj    \
  136. X+     $(OBJ)help.obj        $(OBJ)io.obj        \
  137. X+     $(OBJ)main.obj        $(OBJ)monster.obj    \
  138. X+     $(OBJ)moreobj.obj    $(OBJ)movem.obj        \
  139. X+     $(OBJ)msdos.obj        $(OBJ)nap.obj        \
  140. X+     $(OBJ)object.obj    $(OBJ)regen.obj        \
  141. X+     $(OBJ)savelev.obj    $(OBJ)scores.obj    \
  142. X+     $(OBJ)signal.obj    $(OBJ)spells.obj    \
  143. X+     $(OBJ)spheres.obj    $(OBJ)store.obj        \
  144. X+     $(OBJ)tgetent.obj    $(OBJ)tgetstr.obj    \
  145. X+     $(OBJ)tgoto.obj        $(OBJ)tputs.obj        \
  146. X+     $(OBJ)tok.obj        $(OBJ)vms.obj
  147. X+ 
  148. X+ larn.exe : $(OBJS)
  149. X+     link /CODEVIEW @os2larn.lnk
  150. X+ 
  151. X+ $(OBJ)action.obj : action.c
  152. X+     $(cc) action.c
  153. X+ 
  154. X+ $(OBJ)bill.obj : bill.c
  155. X+     $(cc) bill.c
  156. X+ 
  157. X+ $(OBJ)config.obj : config.c
  158. X+     $(cc) config.c
  159. X+ 
  160. X+ $(OBJ)create.obj : create.c
  161. X+     $(cc) create.c
  162. X+ 
  163. X+ $(OBJ)data.obj : data.c
  164. X+     $(cc) data.c
  165. X+ 
  166. X+ $(OBJ)diag.obj : diag.c
  167. X+     $(cc) diag.c
  168. X+ 
  169. X+ $(OBJ)display.obj : display.c
  170. X+     $(cc) display.c
  171. X+ 
  172. X+ $(OBJ)fgetlr.obj : fgetlr.c
  173. X+     $(cc) fgetlr.c
  174. X+ 
  175. X+ $(OBJ)fortune.obj : fortune.c
  176. X+     $(cc) fortune.c
  177. X+ 
  178. X+ $(OBJ)global.obj : global.c
  179. X+     $(cc) global.c
  180. X+ 
  181. X+ $(OBJ)help.obj : help.c
  182. X+     $(cc) help.c
  183. X+ 
  184. X+ $(OBJ)io.obj : io.c
  185. X+     $(cc) io.c
  186. X+ 
  187. X+ $(OBJ)main.obj : main.c
  188. X+     $(cc) main.c
  189. X+ 
  190. X+ $(OBJ)monster.obj : monster.c
  191. X+     $(cc) monster.c
  192. X+ 
  193. X+ $(OBJ)moreobj.obj : moreobj.c
  194. X+     $(cc) moreobj.c
  195. X+ 
  196. X+ $(OBJ)movem.obj : movem.c
  197. X+     $(cc) movem.c
  198. X+ 
  199. X+ $(OBJ)msdos.obj : msdos.c
  200. X+     $(cc) msdos.c
  201. X+ 
  202. X+ $(OBJ)nap.obj : nap.c
  203. X+     $(cc) nap.c
  204. X+ 
  205. X+ $(OBJ)object.obj : object.c
  206. X+     $(cc) object.c
  207. X+ 
  208. X+ $(OBJ)regen.obj : regen.c
  209. X+     $(cc) regen.c
  210. X+ 
  211. X+ $(OBJ)savelev.obj : savelev.c
  212. X+     $(cc) savelev.c
  213. X+ 
  214. X+ $(OBJ)scores.obj : scores.c
  215. X+     $(cc) scores.c
  216. X+ 
  217. X+ $(OBJ)signal.obj : signal.c
  218. X+     $(cc) signal.c
  219. X+ 
  220. X+ $(OBJ)spells.obj : spells.c
  221. X+     $(cc) spells.c
  222. X+ 
  223. X+ $(OBJ)spheres.obj : spheres.c
  224. X+     $(cc) spheres.c
  225. X+ 
  226. X+ $(OBJ)store.obj : store.c
  227. X+     $(cc) store.c
  228. X+ 
  229. X+ $(OBJ)tgetent.obj : tgetent.c
  230. X+     $(cc) tgetent.c
  231. X+ 
  232. X+ $(OBJ)tgetstr.obj : tgetstr.c
  233. X+     $(cc) tgetstr.c
  234. X+ 
  235. X+ $(OBJ)tgoto.obj : tgoto.c
  236. X+     $(cc) tgoto.c
  237. X+ 
  238. X+ $(OBJ)tputs.obj : tputs.c
  239. X+     $(cc) tputs.c
  240. X+ 
  241. X+ $(OBJ)tok.obj : tok.c
  242. X+     $(cc) tok.c
  243. X+ 
  244. X+ $(OBJ)vms.obj : vms.c
  245. X+     $(cc) vms.c
  246. X*** monster_orig.c    Sun Feb 10 19:23:41 1991
  247. X--- monster.c    Sun Feb 10 19:23:33 1991
  248. X***************
  249. X*** 345,357 ****
  250. X--- 345,365 ----
  251. X      tmp = 0;
  252. X      if (monster[mster].attack>0)
  253. X        if (((dam + bias + 8) > c[AC]) || (rnd((int)((c[AC]>0)?c[AC]:1))==1))
  254. X+ #ifdef    OS2LARN
  255. X+         { if (spattack(monster[mster].attack,x,y)) { flushallkbd(); return; }
  256. X+ #else
  257. X          { if (spattack(monster[mster].attack,x,y)) { flushall(); return; }
  258. X+ #endif
  259. X            tmp = 1;  bias -= 2; cursors(); }
  260. X      if (((dam + bias) > c[AC]) || (rnd((int)((c[AC]>0)?c[AC]:1))==1))
  261. X          {
  262. X          lprintf("\n  The %s hit you ",lastmonst);   tmp = 1;
  263. X          if ((dam -= c[AC]) < 0) dam=0;
  264. X+ #ifdef    OS2LARN
  265. X+         if (dam > 0) { losehp(dam); bottomhp(); flushallkbd(); }
  266. X+ #else
  267. X          if (dam > 0) { losehp(dam); bottomhp(); flushall(); }
  268. X+ #endif
  269. X          }
  270. X      if (tmp == 0)  lprintf("\n  The %s missed ",lastmonst);
  271. X      }
  272. X*** msdos_orig.c    Sun Feb 10 19:23:52 1991
  273. X--- msdos.c    Sun Feb 10 19:23:46 1991
  274. X***************
  275. X*** 1,4 ****
  276. X--- 1,8 ----
  277. X  # ifdef MSDOS
  278. X+ #ifdef OS2LARN
  279. X+ #define    INCL_BASE 
  280. X+ #include <os2.h>
  281. X+ #endif
  282. X  # include <stdio.h>
  283. X  # include <process.h>
  284. X  # include <dos.h>
  285. X***************
  286. X*** 45,56 ****
  287. X--- 49,73 ----
  288. X  
  289. X  /* BIOSgetch gets keys directly with a BIOS call.
  290. X   */
  291. X+ #ifdef    OS2LARN
  292. X+ #  define SHIFT        (RIGHTSHIFT | LEFTSHIFT)
  293. X+ #else
  294. X  #  define SHIFT        (0x1 | 0x2)
  295. X+ #endif
  296. X  #  define KEYBRD_BIOS    0x16
  297. X  
  298. X  static char
  299. X  BIOSgetch() {
  300. X      unsigned char scan, shift, ch;
  301. X+ 
  302. X+ #ifdef    OS2LARN
  303. X+     KBDKEYINFO    kbd;
  304. X+ 
  305. X+     KbdCharIn(&kbd,IO_WAIT,(HKBD) 0);
  306. X+     ch    = kbd.chChar;
  307. X+     scan  = kbd.chScan;
  308. X+     shift = kbd.fsState;
  309. X+ #else
  310. X      union REGS regs;
  311. X  
  312. X      /* Get scan code.
  313. X***************
  314. X*** 66,71 ****
  315. X--- 83,89 ----
  316. X      int86(KEYBRD_BIOS, ®s, ®s);
  317. X      shift = regs.h.al;
  318. X  
  319. X+ #endif
  320. X      /* If scan code is for the keypad, translate it.
  321. X       */
  322. X      if (iskeypad(scan)) {
  323. X***************
  324. X*** 109,114 ****
  325. X--- 127,135 ----
  326. X  ioctl(handle, mode, setvalue)
  327. X  unsigned setvalue;
  328. X  {
  329. X+ #ifdef    OS2LARN
  330. X+     /* not sure if any of this is usefull */
  331. X+ #else
  332. X      union REGS regs;
  333. X  
  334. X      regs.h.ah = IOCTL;
  335. X***************
  336. X*** 118,123 ****
  337. X--- 139,145 ----
  338. X      regs.h.dh = 0;            /* Zero out dh */
  339. X      intdos(®s, ®s);
  340. X      return (regs.x.dx);
  341. X+ #endif
  342. X  }
  343. X  
  344. X  int rawio;
  345. X***************
  346. X*** 400,405 ****
  347. X--- 422,465 ----
  348. X  # define BIOSVIDEO    0x10
  349. X  setcursor()
  350. X  {
  351. X+ #ifdef OS2LARN
  352. X+     USHORT    rc;
  353. X+     VIOCURSORINFO    curinfo;
  354. X+ 
  355. X+     /*
  356. X+     I have no idea what this is for...
  357. X+     however, the DOS version (TurboC) has it, so I do too.
  358. X+     */
  359. X+     if (cursorset == 0)
  360. X+         return;
  361. X+ 
  362. X+     /* Save the cursor type in 'ocursorstart' and 'ocursorend'. */
  363. X+ 
  364. X+     rc = VioGetCurType((PVIOCURSORINFO) &curinfo, (HVIO) NULL);
  365. X+     if (rc != 0)
  366. X+     {
  367. X+         /* errors don't happen. */
  368. X+     }
  369. X+ 
  370. X+     ocursorstart = curinfo.yStart;
  371. X+     ocursorend   = curinfo.cEnd;
  372. X+ 
  373. X+     /*
  374. X+     set the cursor type according to global variables
  375. X+     'cursorstart' and 'cursorend'.
  376. X+     */
  377. X+     curinfo.cEnd   = cursorend;
  378. X+     curinfo.yStart = cursorstart;
  379. X+     curinfo.cx     = 0;    /* default width, 1 char */
  380. X+     curinfo.attr   = 0;    /* 'Normal' attribute */
  381. X+ 
  382. X+     rc = VioSetCurType((PVIOCURSORINFO) &curinfo, (HVIO) NULL);
  383. X+     if (rc != 0)
  384. X+     {
  385. X+         /* errors don't happen. */
  386. X+     }
  387. X+ 
  388. X+ #else
  389. X      union    REGS    regs;
  390. X  
  391. X      if (cursorset == 0)
  392. X***************
  393. X*** 416,421 ****
  394. X--- 476,482 ----
  395. X      regs.h.ch = cursorstart;
  396. X      regs.h.cl = cursorend;
  397. X      int86(BIOSVIDEO, ®s, ®s);
  398. X+ #endif
  399. X  }
  400. X  
  401. X  /* Restore the old cursor upon exit
  402. X***************
  403. X*** 422,427 ****
  404. X--- 483,501 ----
  405. X   */
  406. X  resetcursor()
  407. X  {
  408. X+ #ifdef OS2LARN
  409. X+     VIOCURSORINFO    curinfo;
  410. X+ 
  411. X+     if (cursorset == 0)
  412. X+         return;
  413. X+ 
  414. X+     curinfo.cEnd   = ocursorend;
  415. X+     curinfo.yStart = ocursorstart;
  416. X+     curinfo.cx     = 0;    /* default width, 1 char */
  417. X+     curinfo.attr   = 0;    /* 'Normal' attribute */
  418. X+ 
  419. X+     VioSetCurType((PVIOCURSORINFO) &curinfo, (HVIO) NULL);
  420. X+ #else
  421. X      union    REGS    regs;
  422. X  
  423. X      if (cursorset == 0)
  424. X***************
  425. X*** 431,435 ****
  426. X--- 505,510 ----
  427. X      regs.h.ch = ocursorstart;
  428. X      regs.h.cl = ocursorend;
  429. X      int86(BIOSVIDEO, ®s, ®s);
  430. X+ #endif
  431. X  }
  432. X  # endif    /* MSDOS */
  433. X*** nap_orig.c    Sun Feb 10 19:24:00 1991
  434. X--- nap.c    Sun Feb 10 19:23:56 1991
  435. X***************
  436. X*** 8,13 ****
  437. X--- 8,17 ----
  438. X  #include <sys/types.h>
  439. X  #ifdef SYSV
  440. X  # ifdef MSDOS
  441. X+ #ifdef    OS2LARN
  442. X+ #define    INCL_BASE
  443. X+ #include <os2.h>
  444. X+ #endif
  445. X  #   include <dos.h>
  446. X  # else
  447. X  #   include <sys/times.h>
  448. X***************
  449. X*** 44,49 ****
  450. X--- 48,62 ----
  451. X  unsigned long
  452. X  dosgetms()
  453. X  {
  454. X+ #ifdef    OS2LARN
  455. X+     DATETIME dt;
  456. X+     DosGetDateTime(&dt);
  457. X+ 
  458. X+     /* return hundreths of seconds */
  459. X+     return ( 360000L * dt.hours   +
  460. X+          6000L   * dt.minutes +
  461. X+          100L    * dt.seconds + dt.hundredths );
  462. X+ #else
  463. X      union REGS regs;
  464. X  
  465. X      regs.h.ah = 0x2C;
  466. X***************
  467. X*** 54,59 ****
  468. X--- 67,73 ----
  469. X      return ( 360000L * regs.h.ch +
  470. X             6000L * regs.h.cl +
  471. X          100L * regs.h.dh + regs.h.dl );
  472. X+ #endif
  473. X  }
  474. X  
  475. X  napms(time)
  476. X*** /dev/null    Sun Feb 10 19:25:39 1991
  477. X--- os2larn.def    Sun Feb 10 19:24:03 1991
  478. X***************
  479. X*** 0 ****
  480. X--- 1,3 ----
  481. X+ NAME LARN WINDOWCOMPAT LONGNAMES
  482. X+ 
  483. X+ DESCRIPTION 'LARN for OS/2 V 12.2 MSC 6.00'
  484. X*** /dev/null    Sun Feb 10 19:25:49 1991
  485. X--- os2larn.lnk    Sun Feb 10 19:24:07 1991
  486. X***************
  487. X*** 0 ****
  488. X--- 1,35 ----
  489. X+ obj\action.obj+
  490. X+ obj\bill.obj+
  491. X+ obj\config.obj+
  492. X+ obj\create.obj+
  493. X+ obj\data.obj+
  494. X+ obj\diag.obj+
  495. X+ obj\display.obj+
  496. X+ obj\fgetlr.obj+
  497. X+ obj\fortune.obj+
  498. X+ obj\global.obj+
  499. X+ obj\help.obj+
  500. X+ obj\io.obj+
  501. X+ obj\main.obj+
  502. X+ obj\monster.obj+
  503. X+ obj\moreobj.obj+
  504. X+ obj\movem.obj+
  505. X+ obj\msdos.obj+
  506. X+ obj\nap.obj+
  507. X+ obj\object.obj+
  508. X+ obj\regen.obj+
  509. X+ obj\savelev.obj+
  510. X+ obj\scores.obj+
  511. X+ obj\signal.obj+
  512. X+ obj\spells.obj+
  513. X+ obj\spheres.obj+
  514. X+ obj\store.obj+
  515. X+ obj\tgetent.obj+
  516. X+ obj\tgetstr.obj+
  517. X+ obj\tgoto.obj+
  518. X+ obj\tputs.obj+
  519. X+ obj\tok.obj+
  520. X+ obj\vms.obj
  521. X+ larn122.exe
  522. X+ larn122.map/map /line,,
  523. X+ os2larn.def
  524. X*** tok_orig.c    Sun Feb 10 19:24:17 1991
  525. X--- tok.c    Sun Feb 10 19:24:12 1991
  526. X***************
  527. X*** 66,72 ****
  528. X--- 66,76 ----
  529. X              lprcat("\nDone\n");
  530. X              showplayer();
  531. X              lflush();
  532. X+ # ifdef OS2LARN
  533. X+             flushallkbd();    /* Kill any stored key strokes */
  534. X+ # else
  535. X              flushall();    /* Kill any stored key strokes */
  536. X+ # endif
  537. X  #else
  538. X  #ifdef VMS
  539. X              savegame(ckpfile);
  540. X***************
  541. X*** 160,166 ****
  542. X--- 164,174 ----
  543. X  /*
  544. X   *    flushall()    Function to flush all type-ahead in the input buffer
  545. X   */
  546. X+ #ifdef OS2LARN
  547. X+ flushall()
  548. X+ #else
  549. X  flushall()
  550. X+ #endif
  551. X      {
  552. X  # ifdef MSDOS
  553. X      while (kbhit())
  554. X
  555. X
  556. END_OF_FILE
  557. if test 11296 -ne `wc -c <'patches03'`; then
  558.     echo shar: \"'patches03'\" unpacked with wrong size!
  559. fi
  560. # end of 'patches03'
  561. fi
  562. echo shar: End of shell archive.
  563. exit 0
  564.